{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Importing the Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np\n",
    "import re\n",
    "import seaborn as sns\n",
    "import matplotlib.pyplot as plt\n",
    "import pickle\n",
    "\n",
    "import warnings\n",
    "warnings.simplefilter(\"ignore\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Loading the dataset\n",
    "data = pd.read_csv(\"language_detection.csv\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Text</th>\n",
       "      <th>Language</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Nature, in the broadest sense, is the natural...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>\"Nature\" can refer to the phenomena of the phy...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>The study of nature is a large, if not the onl...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Although humans are part of nature, human acti...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>[1] The word nature is borrowed from the Old F...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>[2] In ancient philosophy, natura is mostly us...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>[3][4] \\nThe concept of nature as a whole, the...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>During the advent of modern scientific method ...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>[5][6] With the Industrial revolution, nature ...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>However, a vitalist vision of nature, closer t...</td>\n",
       "      <td>English</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                                Text Language\n",
       "0   Nature, in the broadest sense, is the natural...  English\n",
       "1  \"Nature\" can refer to the phenomena of the phy...  English\n",
       "2  The study of nature is a large, if not the onl...  English\n",
       "3  Although humans are part of nature, human acti...  English\n",
       "4  [1] The word nature is borrowed from the Old F...  English\n",
       "5  [2] In ancient philosophy, natura is mostly us...  English\n",
       "6  [3][4] \\nThe concept of nature as a whole, the...  English\n",
       "7  During the advent of modern scientific method ...  English\n",
       "8  [5][6] With the Industrial revolution, nature ...  English\n",
       "9  However, a vitalist vision of nature, closer t...  English"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data.head(10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "English       1385\n",
       "French        1014\n",
       "Spanish        819\n",
       "Portugeese     739\n",
       "Italian        698\n",
       "Russian        692\n",
       "Sweedish       676\n",
       "Malayalam      594\n",
       "Dutch          546\n",
       "Arabic         536\n",
       "Turkish        474\n",
       "German         470\n",
       "Tamil          469\n",
       "Danish         428\n",
       "Kannada        369\n",
       "Greek          365\n",
       "Hindi           63\n",
       "Name: Language, dtype: int64"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# value count for each language\n",
    "data[\"Language\"].value_counts()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# separating the independent and dependant features\n",
    "X = data[\"Text\"]\n",
    "y = data[\"Language\"]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [],
   "source": [
    "# converting categorical variables to numerical\n",
    "\n",
    "from sklearn.preprocessing import LabelEncoder\n",
    "le = LabelEncoder()\n",
    "y = le.fit_transform(y)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Text preprocessing"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [],
   "source": [
    "data_list = []\n",
    "for text in X:\n",
    "    text = re.sub(r'[!@#$(),\\n\"%^*?\\:;~`0-9]', ' ', text)\n",
    "    text = re.sub(r'[[]]', ' ', text)\n",
    "    text = text.lower()\n",
    "    data_list.append(text)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Bag of Words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [],
   "source": [
    "# creating bag of words using countvectorizer\n",
    "\n",
    "from sklearn.feature_extraction.text import CountVectorizer\n",
    "cv = CountVectorizer()\n",
    "X = cv.fit_transform(data_list).toarray()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(10337, 39419)"
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "X.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Train Test split"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.model_selection import train_test_split\n",
    "\n",
    "x_train, x_test, y_train, y_test = train_test_split(X, y, test_size = 0.20)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Model creation and Prediction"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "MultinomialNB(alpha=1.0, class_prior=None, fit_prior=True)"
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.naive_bayes import MultinomialNB\n",
    "\n",
    "model = MultinomialNB()\n",
    "model.fit(x_train, y_train)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "# prediction \n",
    "y_pred = model.predict(x_test)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Evaluating the model"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "from sklearn.metrics import accuracy_score, confusion_matrix, classification_report\n",
    "\n",
    "ac = accuracy_score(y_test, y_pred)\n",
    "cm = confusion_matrix(y_test, y_pred)\n",
    "cr = classification_report(y_test, y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Accuracy is : 0.9854932301740812\n"
     ]
    }
   ],
   "source": [
    "print(\"Accuracy is :\",ac)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "              precision    recall  f1-score   support\n",
      "\n",
      "           0       1.00      0.97      0.99       111\n",
      "           1       1.00      0.99      0.99        74\n",
      "           2       1.00      0.97      0.98       101\n",
      "           3       0.92      1.00      0.96       282\n",
      "           4       0.99      0.99      0.99       197\n",
      "           5       1.00      0.98      0.99       104\n",
      "           6       1.00      1.00      1.00        79\n",
      "           7       1.00      0.95      0.97        20\n",
      "           8       0.98      0.99      0.99       137\n",
      "           9       1.00      0.96      0.98        68\n",
      "          10       0.99      1.00      1.00       111\n",
      "          11       1.00      0.98      0.99       146\n",
      "          12       1.00      0.98      0.99       144\n",
      "          13       0.99      0.99      0.99       166\n",
      "          14       1.00      1.00      1.00       131\n",
      "          15       1.00      1.00      1.00        88\n",
      "          16       1.00      0.94      0.97       109\n",
      "\n",
      "    accuracy                           0.99      2068\n",
      "   macro avg       0.99      0.98      0.99      2068\n",
      "weighted avg       0.99      0.99      0.99      2068\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# classification report\n",
    "print(cr)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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qQohXFbJ8lfM7Pr0JImIiIiISF1Rk+twXJuyChERERGReqIkgx8eVHda3DmV3QXkpT5HRERERETqkurOUpUHDATWllluwDtpKRIRERERqcO8HFuRKdUNOCYQPxtVucuLmtlbaSkSEREREZE6o7qDxodVcd85qc8REREREZG6pLoZDhERERERSSEvB3NnSk3OUiUiIiIiIlIlzXCIiIiIiGRQSahfB41rhkNERERERNJGMxySlPo2MhcR8abPyhlRJ1Rp8UH7RJ1QqYJZC6NOkHquvv0UpRkOERERERFJG81wiIiIiIhkUEk9m+PQDIeIiIiIiKSNZjhERERERDIoaIZDREREREQkNTTDISIiIiKSQbrSuIiIiIiISIpohkNEREREJIN0lioREREREZEU0QyHiIiIiEgG6SxVIiIiIiIiKVJrBhwDj+/HvLlT+Hj+VC4bPSLqnHI893luu3/MrSwv/JDZs16POqUcz23ge7uC7z7PbeC7T23J89yXjrZWV42mw8vPkPfYA5U+puHB3Wn38BjyHn+Q3e69reYvmpND6z9dTfunH6bdA3eT1SEv/jq9D6HduPvIe/QftBt3H/37HVHz10qob9s1lbz3SepYCOmd0slu0LHGLxCLxVgw720GnXg2hYVFTHt3IueedxELFnyaisQa89znuQ3gqCMPZePGTTz00B30OOiYqHN24LnN+3b13Oe5DXz3qS15nvvS1bb8gjMI331H62uuYMU5w8rdb01zafePv7F65BUUr1hJrFVLStau26nnzuqQR+urL2fVRb/eYXnuT4aQ0/VHrLvxdhof15/GRx/JmquuI2fvrhSvWUvJ6q/J/lEBxbf8mT269KzR+4P6uV1TJV19WzcvsxQlptV/7TEkY/tUPfvlC5Gvk1oxw9G710F8/vliFi1awpYtWxg//nmGDB4YddZ2nvs8twG8PXU6a3byG0ymeW7zvl0993luA999akue5750tW2ePYeSDRsqvb/JwGP47s2pFK9YCbDDYKPJoGNp9+A9tHt4DC2v+BXEdu7HlcZ9j+DblyYB8N0bk2nY62AAtnzyGSWrvwZg6xeLadSoEQ0aNEjqfZVWH7drqnjvk9SqFQOO/I7tWVq4fPvtwmVF5Oe3j7BoR577PLdJ8rxvV899ntvAd5/akue5L6q27N07E2velN3u+Svtxt1HkxOO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FOdNuYXzptzCvqcfBUB2owYMHvsbzn3zJs759w0cfsWZKXmtKJUQMvbhQa0YcMRiMe6848+cPPhcDujenzPPPJVu3faKOms7z32e27a5+JfD+HjhZ1FnlON53XluA999ntvAd5/nNoB//nM8J53806gzKuR53XluA23XZGWqbcFTU3jhvJt3+etOG38lzTq13WFZw5a59B51GuOHXMP4wb+n96jTaNiiCQAf/P0lHul/GU+ccCUdeu3NHv0OTEm/ZEatGHD07nUQn3++mEWLlrBlyxbGj3+eIYMHRp21nec+z20AHTu254QTBvDQQ49HnVKO53XnuQ1893luA999ntsA3p46nTVr10WdUSHP685zG2i7JitTbcunL+T7dRt3WNZ8j3YMefgyznzpOn7yzNW02rPDTj3X7kcfyNK35/LDuk38sP5blr49l937dWfr95tZ9u4CAEq2FLPyo8U07dA65e8lk0IIGfvwoFYMOPI7tmdp4fLttwuXFZGf3z7Coh157vPcBnDLzX/gt7+7npKSkqhTyvG87jy3ge8+z23gu89zm3ee153nNu88r7so2wbcMIzJV4/jyZOuZup1j3H0n//fTn1d0/at+Kbo6+23N361hqbtW+3wmAbNm9Dl2INY+p95qUyWNNvls1SZWZsQwtfVPzJ1zKzcMi8jNvDd57ntxBOOYdWqr5k16yP69u0TdU45nted5zbw3ee5DXz3eW7zzvO689zmned1F1VbTpOGdOi5Fyfcd8n2ZVkN4j9udhval+4/j8+ytCjIY8i40RRv2cqGpauYeOHtQPlmSjVbVoxBd43gw4deZcOSVWl9H+lW367DUeWAw8xuAG4JIaw2s57AeKDEzHKAn4UQJlfydcOB4QCW1YJYLLdGkcsKi+jcKX/77U4dO1BUtKJGz5lKnvs8tx12eE9OOuk4Bg7qT6OGDWnevBkPPXQHF1wwMuo0wPe689wGvvs8t4HvPs9t3nled57bvPO87iJri8X4Yf23PDHoynJ3LRg/hQXjpwDxYzj+/eu/803h6u33b/xqDZ36dNt+u2n71hROW7D99oAbh7Fu0Vd8+MCraXwDkg7V7VJ1Ughh29+Em4EzQwhdgeOAWyv7ohDCmBBCzxBCz5oONgBmzJxN165dKCjoTE5ODkOHnsKLEybV+HlTxXOf57arr76RPbv2Zp99Due8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\n",
      "text/plain": [
       "<Figure size 1080x720 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# visualising the confusion matrix\n",
    "plt.figure(figsize=(15,10))\n",
    "sns.heatmap(cm, annot = True)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Model Saving"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "metadata": {},
   "outputs": [],
   "source": [
    "# saving both cv and model\n",
    "pickle.dump(cv, open(\"transform.pkl\", \"wb\"))\n",
    "pickle.dump(model, open(\"model.pkl\", \"wb\"))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
